Accessing subscribed content with a mobile computing device

ABSTRACT

A mobile computing device has a radio frequency transceiver and a processing circuit. The radio frequency transceiver is configured to communicate over a wireless network with a remote server. The processing circuit is configured to receive subscribed content from the remote server. The processing circuit is configured to determine a status of at least one local system resource and to determine whether to proceed with accessing the subscribed content based on the status.

BACKGROUND

Mobile computing devices, such as mobile telephones, laptop computers,and personal digital assistants, can communicate with different wirelessnetworks in different locations. The same mobile computing device maycommunicate via a wired network in an office building, a Wi-Fi networkat home or at a hotel, and a cellular network while in a moving vehicle.Mobile computing devices may also communicate over a wireless networkwith a remote server to retrieve content for use on the mobile computingdevice. The content may be subscribed content, such as a web feed or podcast.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a front view of a mobile computing device, according to anexemplary embodiment;

FIG. 2 is a back view of a mobile computing device, according to anexemplary embodiment;

FIG. 3 is a block diagram of the mobile computing device of FIGS. 1 and2, according to an exemplary embodiment;

FIG. 4 is a block diagram of a system and method of accessing subscribedcontent with a mobile computing device, according to an exemplaryembodiment;

FIG. 5 is a flowchart illustrating a system and method of accessingsubscribed content with a mobile computing device, according to anexemplary embodiment;

FIG. 6 is a flowchart illustrating a system and method of accessingsubscribed content with a mobile computing device, according to anexemplary embodiment;

FIG. 7 is a flowchart illustrating a system and method of accessingsubscribed content with a mobile computing device, according to anexemplary embodiment; and

FIG. 8 is a flowchart illustrating a system and method of accessingsubscribed content with a mobile computing device, according to anexemplary embodiment.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS

Described herein are systems and methods which improve the accessing orretrieval of subscribed content which may be delivered via data feedsfrom a remote server to a mobile computing device. Further described aresystems and methods which can intelligently reserve memory space formobile computing applications when accessing subscribed content from aremote server. Further described are systems and methods for usinginformation regarding wireless networks, including the speed andavailability of the wireless networks, to determine when and how todownload subscribed content. Further described are systems and methodsfor transmitting from a server and/or receiving at a mobile computingdevice subscribed content at a time that minimally interferes withnetwork resources and user operation of the mobile computing device.Further described are systems and methods for timing the receipt ofsubscribed content from a remote server to minimize the impact onbattery power, processor resources, and/or local memory resources.Further described are systems and methods for intelligently determiningwhen, how and/or where to download and save subscribed content on amobile computing device. Further described are systems and methods foravoiding race conditions. Further described are systems and methods forintelligently automatically downloading subscribed content in order toreduce battery drain, increase data, transfer efficiency, and/or provideadequate storage capabilities for content transferred to a mobilecomputing device.

The teachings herein extend to those embodiments which fall within thescope of the appended claims, regardless of whether they accomplish oneor more of the above-mentioned exemplary advantages.

Referring first to FIG. 1, a mobile computing device 100 is shown.Device 100 is a smart phone, which is a combination mobile telephone andhandheld computer having personal digital assistant functionality. Theteachings herein can be applied to other mobile computing devices (e.g.,a laptop computer) or other electronic devices (e.g., a desktop personalcomputer, etc.). Personal digital assistant functionality can compriseone or more of personal information management, database functions, wordprocessing, spreadsheets, voice memo recording, etc. and is configuredto synchronize personal information from one or more applications with acomputer (e.g., desktop, laptop, server, etc.). Device 100 is furtherconfigured to receive and operate additional applications provided todevice 100 after manufacture, e.g., via wired or wireless download,SecureDigital card, etc.

Device 100 comprises a housing 11 having a front side 13 and a back side17 (FIG. 2). An earpiece speaker 15, a loudspeaker 16 (FIG. 2), and auser input device 110 (e.g., a plurality of keys 110) are coupled tohousing 11. Housing 11 is configured to hold a screen in a fixedrelationship above a user input device 110 in a substantially parallelor same plane. This fixed relationship excludes a hinged or movablerelationship between the screen and plurality of keys in the fixedembodiment. Device 100 may be a handheld computer, which is a computersmall enough to be carried in a typical front pocket found in a pair ofpants, comprising such devices as typical mobile telephones and personaldigital assistants, but excluding typical laptop computers and tabletPCs. In alternative embodiments, display 112, user input device 110,earpiece 15 and loudspeaker 16 may each be positioned anywhere on frontside 13, back side 17, or the edges therebetween.

In various embodiments device 100 has a width (shorter dimension) of nomore than about 200 mm or no more than about 100 mm. According to someof these embodiments, housing 11 has a width of no more than about 85 mmor no more than about 65 mm. According to some embodiments, housing 11has a width of at least about 30 mm or at least about 50 mm. Accordingto some of these embodiments, housing 11 has a width of at least about55 mm.

In some embodiments, housing 11 has a length (longer dimension) of nomore than about 200 mm or no more than about 150 mm. According to someof these embodiments, housing 11 has a length of no more than about 135mm or no more than about 125 mm. According to some embodiments, housing11 has a length of at least about 70 mm or at least about 100 mm.According to some of these embodiments, housing 11 has a length of atleast about 110 mm.

In some embodiments, housing 11 has a thickness (smallest dimension) ofno more than about 150 mm or no more than about 50 mm. According to someof these embodiments, housing 11 has a thickness of no more than about30 mm or no more than about 25 mm. According to some embodiments,housing 11 has a thickness of at least about 10 mm or at least about 15mm. According to some of these embodiments, housing 11 has a thicknessof at least about 50 mm.

In some embodiments, housing 11 has a volume of up to about 2500 cubiccentimeters and/or up to about 1500 cubic centimeters. In some of theseembodiments, housing 11 has a volume of up to about 1000 cubiccentimeters and/or up to about 600 cubic centimeters.

While described with regards to a handheld device, many embodiments areusable with portable devices which are not handheld and/or withnon-portable devices/systems.

Device 100 may provide voice communications functionality in accordancewith different types of cellular radiotelephone systems. Examples ofcellular radiotelephone systems may include Code Division MultipleAccess (CDMA) cellular radiotelephone communication systems, GlobalSystem for Mobile Communications (GSM) cellular radiotelephone systems,etc.

In addition to voice communications functionality, device 100 may beconfigured to provide data communications functionality in accordancewith different types of cellular radiotelephone systems. Examples ofcellular radiotelephone systems offering data communications servicesmay include GSM with General Packet Radio Service (GPRS) systems(GSM/GPRS), CDMA/1xRTT systems, Enhanced Data Rates for Global Evolution(EDGE) systems, Evolution Data Only or Evolution Data Optimized (EV-DO)systems, etc.

Device 100 may be configured to provide voice and/or data communicationsfunctionality through wireless access points (WAPs) in accordance withdifferent types of wireless network systems. A wireless access point maycomprise any one or more components of a wireless site used by device100 to create a wireless network system that connects to a wiredinfrastructure, such as a wireless transceiver, cell tower, basestation, router, cables, servers, or other components depending on thesystem architecture. Examples of wireless network systems may furtherinclude a wireless local area network (WLAN) system, wirelessmetropolitan area network (WMAN) system, wireless wide area network(WWAN) system (e.g., a cellular network), and so forth. Examples ofsuitable wireless network systems offering data communication servicesmay include the Institute of Electrical and Electronics Engineers (IEEE)802.xx series of protocols, such as the IEEE 802.11a/b/g/n series ofstandard protocols and variants (also referred to as “WiFi”), the IEEE802.16 series of standard protocols and variants (also referred to as“WiMAX”), the IEEE 802.20 series of standard protocols and variants, awireless personal area network (PAN) system, such as a Bluetooth® systemoperating in accordance with the Bluetooth Special Interest Group (SIG)series of protocols.

As shown in the embodiment of FIG. 3, device 100 may comprise aprocessing circuit 101 which may comprise a dual processor architecture,including a host processor 102 and a radio processor 104 (e.g., a baseband processor). The host processor 102 and the radio processor 104 maybe configured to communicate with each other using interfaces 106 suchas one or more universal serial bus (USB) interfaces, micro-USBinterfaces, universal asynchronous receiver-transmitter (UART)interfaces, general purpose input/output (GPIO) interfaces,control/status lines, control/data lines, shared memory, and so forth.

The host processor 102 may be responsible for executing various softwareprograms such as application programs and system programs to providecomputing and processing operations for device 100. The radio processor104 may be responsible for performing various voice and datacommunications operations for device 100 such as transmitting andreceiving voice and data information over one or more wirelesscommunications channels. Although embodiments of the dual processorarchitecture may be described as comprising the host processor 102 andthe radio processor 104 for purposes of illustration, the dual processorarchitecture of device 100 may comprise one processor, more than twoprocessors, may be implemented as a dual- or multi-core chip with bothhost processor 102 and radio processor 104 on a single chip, etc.Alternatively, processing circuit 101 may comprise any digital and/oranalog circuit elements, comprising discrete and/or solid statecomponents, suitable for use with the embodiments disclosed herein.

In various embodiments, the host processor 102 may be implemented as ahost central processing unit (CPU) using any suitable processor or logicdevice, such as a general purpose processor. The host processor 102 maycomprise, or be implemented as, a chip multiprocessor (CMP), dedicatedprocessor, embedded processor, media processor, input/output (I/O)processor, co-processor, a field programmable gate array (FPGA), aprogrammable logic device (PLD), or other processing device inalternative embodiments.

The host processor 102 may be configured to provide processing orcomputing resources to device 100. For example, the host processor 102may be responsible for executing various software programs such asapplication programs and system programs to provide computing andprocessing operations for device 100. Examples of application programsmay include, for example, a telephone application, voicemailapplication, e-mail application, instant message (IM) application, shortmessage service (SMS) application, multimedia message service (MMS)application, web browser application, personal information manager (PIM)application (e.g., contact management application, calendar application,scheduling application, task management application, web site favoritesor bookmarks, notes application, etc.), word processing application,spreadsheet application, database application, video player application,audio player application, multimedia player application, digital cameraapplication, video camera application, media management application, agaming application, and so forth. The application software may provide agraphical user interface (GUI) to communicate information between device100 and a user.

System programs assist in the running of a computer system. Systemprograms may be directly responsible for controlling, integrating, andmanaging the individual hardware components of the computer system.Examples of system programs may include, for example, an operatingsystem (OS), device drivers, programming tools, utility programs,software libraries, an application programming interface (API),graphical user interface (GUI), and so forth. Device 100 may utilize anysuitable OS in accordance with the described embodiments such as a PalmOS®, Palm OS® Cobalt, Microsoft® Windows OS, Microsoft Windows® CE,Microsoft Pocket PC, Microsoft Mobile, Symbian OS™, Embedix OS, Linux,Binary Run-time Environment for Wireless (BREW) OS, JavaOS, a WirelessApplication Protocol (WAP) OS, and so forth.

Device 100 may comprise a memory 108 coupled to the host processor 102.In various embodiments, the memory 108 may be configured to store one ormore software programs to be executed by the host processor 102. Thememory 108 may be implemented using any machine-readable orcomputer-readable media capable of storing data such as volatile memoryor non-volatile memory, removable or non-removable memory, erasable ornon-erasable memory, writeable or re-writeable memory, and so forth.Examples of machine-readable storage media may include, withoutlimitation, random-access memory (RAM), dynamic RAM (DRAM),Double-Data-Rate DRAM (DDRAM), synchronous DRAM (SDRAM), static RAM(SRAM), read-only memory (ROM), programmable ROM (PROM), erasableprogrammable ROM (EPROM), electrically erasable programmable ROM(EEPROM), flash memory (e.g., NOR or NAND flash memory), or any othertype of media suitable for storing information.

Although the memory 108 may be shown as being separate from the hostprocessor 102 for purposes of illustration, in various embodiments someportion or the entire memory 108 may be included on the same integratedcircuit as the host processor 102. Alternatively, some portion or theentire memory 108 may be disposed on an integrated circuit or othermedium (e.g., hard disk drive) external to the integrated circuit ofhost processor 102. In various embodiments, device 100 may comprise anmemory port or expansion slot 123 (FIG. 1) to support a multimediaand/or memory card, for example. Processing circuit 101 may use memoryport 123 to read and/or write to a removable memory card having memory,for example, to determine whether a memory card is present in port 123,to determine an amount of available memory on the memory card, to storesubscribed content or other data or files on the memory card, etc.

Device 100 may comprise a user input device 110 coupled to the hostprocessor 102. The user input device 110 may comprise, for example, aalphanumeric, numeric or QWERTY key layout and an integrated number dialpad. Device 100 also may comprise various keys, buttons, and switchessuch as, for example, input keys, preset and programmable hot keys, leftand right action buttons, a navigation button such as a multidirectionalnavigation button, phone/send and power/end buttons, preset andprogrammable shortcut buttons, a volume rocker switch, a ringer on/offswitch having a vibrate mode, a keypad and so forth.

The host processor 102 may be coupled to a display 112. The display 112may comprise any suitable visual interface for displaying content to auser of device 100. For example, the display 112 may be implemented by aliquid crystal display (LCD) such as a touch-sensitive color (e.g.,16-bit color) thin-film transistor (TFT) LCD screen. In someembodiments, the touch-sensitive LCD may be used with a stylus and/or ahandwriting recognizer program.

Device 100 may comprise an input/output (I/O) interface 114 coupled tothe host processor 102. The I/O interface 114 may comprise one or moreI/O devices such as a serial connection port, an infrared port,integrated Bluetooth® wireless capability, and/or integrated 802.11x(WiFi) wireless capability, to enable wired (e.g., USB cable) and/orwireless connection to a local computer system, such as a local personalcomputer (PC). In various implementations, device 100 may be configuredto transfer and/or synchronize information with the local computersystem.

The host processor 102 may be coupled to various audio/video (A/V)devices 116 that support A/V capability of device 100. Examples of A/Vdevices 116 may include, for example, a microphone, one or morespeakers, an audio port to connect an audio headset, an audiocoder/decoder (codec), an audio player, a digital camera, a videocamera, a video codec, a video player, and so forth.

The host processor 102 may be coupled to a power supply 118 configuredto supply and manage power to the elements of device 100. In variousembodiments, the power supply 118 may be implemented by a rechargeablebattery, such as a removable and rechargeable lithium ion battery toprovide direct current (DC) power, and/or an alternating current (AC)adapter to draw power from a standard AC main power supply.

As mentioned above, the radio processor 104 may perform voice and/ordata communication operations for device 100. For example, the radioprocessor 104 may be configured to communicate voice information and/ordata information over one or more assigned frequency bands of a wirelesscommunication channel. In various embodiments, the radio processor 104may be implemented as a communications processor using any suitableprocessor or logic device, such as a modem processor or basebandprocessor. Although some embodiments may be described with the radioprocessor 104 implemented as a modem processor or baseband processor byway of example, it may be appreciated that the embodiments are notlimited in this context. For example, the radio processor 104 maycomprise, or be implemented as, a digital signal processor (DSP), mediaaccess control (MAC) processor, or any other type of communicationsprocessor in accordance with the described embodiments. Radio processor104 may be any of a plurality of modems manufactured by Qualcomm, Inc.or other manufacturers.

Device 100 may comprise a transceiver 120 coupled to the radio processor104. The transceiver 120 may comprise one or more transceiversconfigured to communicate using different types of protocols,communication ranges, operating power requirements, RF sub-bands,information types (e.g., voice or data), use scenarios, applications,and so forth. For example, transceiver 120 may comprise a Wi-Fitransceiver and a cellular or WAN transceiver configured to operatesimultaneously.

The transceiver 120 may be implemented using one or more chips asdesired for a given implementation. Although the transceiver 120 may beshown as being separate from and external to the radio processor 104 forpurposes of illustration, in various embodiments some portion or theentire transceiver 120 may be included on the same integrated circuit asthe radio processor 104.

Device 100 may comprise an antenna system 122 for transmitting and/orreceiving electrical signals. As shown, the antenna system 122 may becoupled to the radio processor 104 through the transceiver 120. Theantenna system 122 may comprise or be implemented as one or moreinternal antennas and/or external antennas.

Device 100 may comprise a memory 124 coupled to the radio processor 104.The memory 124 may be implemented using one or more types ofmachine-readable or computer-readable media capable of storing data suchas volatile memory or non-volatile memory, removable or non-removablememory, erasable or non-erasable memory, writeable or re-writeablememory, etc. The memory 124 may comprise, for example, flash memory andsecure digital (SD) RAM. Although the memory 124 may be shown as beingseparate from and external to the radio processor 104 for purposes ofillustration, in various embodiments some portion or the entire memory124 may be included on the same integrated circuit as the radioprocessor 104. Further, host proceesor 102 and radio processor 104 mayshare a single memory.

Device 100 may comprise a subscriber identity module (SIM) 126 coupledto the radio processor 104. The SIM 126 may comprise, for example, aremovable or non-removable smart card configured to encrypt voice anddata transmissions and to store user-specific data for allowing a voiceor data communications network to identify and authenticate the user.The SIM 126 also may store data such as personal settings specific tothe user.

Device 100 may comprise an I/O interface 128 coupled to the radioprocessor 104. The I/O interface 128 may comprise one or more I/Odevices to enable wired (e.g., serial, cable, etc.) and/or wireless(e.g., WiFi, short range, etc.) communication between device 100 and oneor more external computer systems.

In various embodiments, device 100 may comprise location or positiondetermination capabilities. Device 100 may employ one or more positiondetermination techniques including, for example, Global PositioningSystem (GPS) techniques, Cell Global Identity (CGI) techniques, CGIincluding timing advance (TA) techniques, Enhanced Forward LinkTrilateration (EFLT) techniques, Time Difference of Arrival (TDOA)techniques, Angle of Arrival (AOA) techniques, Advanced Forward LinkTrilateration (AFTL) techniques, Observed Time Difference of Arrival(OTDOA), Enhanced Observed Time Difference (EOTD) techniques, AssistedGPS (AGPS) techniques, hybrid techniques (e.g., GPS/CGI, AGPS/CGI,GPS/AFTL or AGPS/AFTL for CDMA networks, GPS/EOTD or AGPS/EOTD forGSM/GPRS networks, GPS/OTDOA or AGPS/OTDOA for UMTS networks), etc.

In various embodiments, device 100 may comprise dedicated hardwarecircuits or structures, or a combination of dedicated hardware andassociated software, to support position determination. For example, thetransceiver 120 and the antenna system 122 may comprise GPS receiver ortransceiver hardware and one or more associated antennas coupled to theradio processor 104 to support position determination.

The host processor 102 may comprise and/or implement at least one LBS(location-based service) application. In general, the LBS applicationmay comprise any type of client application executed by the hostprocessor 102, such as a GPS application, configured to communicateposition requests (e.g., requests for position fixes) and positionresponses. Examples of LBS applications include, without limitation,wireless 911 emergency services, roadside assistance, asset tracking,fleet management, friends and family locator services, dating services,and navigation services which may provide the user with maps,directions, routing, traffic updates, mass transit schedules,information regarding local points-of-interest (POI) such asrestaurants, hotels, landmarks, and entertainment venues, and othertypes of LBS services in accordance with the described embodiments.

Radio processor 104 may be configured to invoke a position fix byconfiguring a position engine and requesting a position fix. Forexample, a position engine interface on radio processor 104 may setconfiguration parameters that control the position determinationprocess. Examples of configuration parameters may include, withoutlimitation, location determination mode (e.g., standalone, MS-assisted,MS-based), actual or estimated number of position fixes (e.g., singleposition fix, series of position fixes, request position assist datawithout a position fix), time interval between position fixes, Qualityof Service (QoS) values, optimization parameters (e.g., optimized forspeed, accuracy, or payload), PDE address (e.g., IP address and portnumber of LPS or MPC), etc. In one embodiment, the position engine maybe implemented as a QUALCOMM® gpsOne® engine.

With reference now to FIG. 4, mobile computing device 100 may be used toaccess subscribed content on a remote server 20 via a wireless network24, 26. Subscribed content is data published by a content provider towhich a user has subscribed or may subscribe in order to receive updatedcontent. Subscribed content 28 includes web casts (e.g., podcasts suchas video, audio, and still photo data), data provided in a web feedformat, such as RSS (Really Simple Syndication), RDF (ResourceDescription Framework), OPML (Outline Processor Markup Language), theAtom Syndication Format or other markup language formats, such ashypertext markup language (HTML) or extensive markup language (XML).Subscribed content may include news feeds, blogs, school information,podcasts, cached web pages, etc., and may include enclosures in anenclosed file format or other code pointing to media files (e.g., audio,video, photo, etc.). Subscribed content or updated subscribed contentmay be referred to as episodes, publications, volumes, numbers,editions, etc. Subscribed content may be described as being “pulled”from a content source using an aggregator or other mechanism asdescribed below, as opposed to being “pushed” as with e-mail and instantmessaging, though in alternative embodiments subscribed content, too,may be pushed, for example to an internet aggregator. Subscribed contentdoes not include conventional e-mails in this embodiment, though inalternative embodiments, the teachings herein may be applied to e-mailsand other content which is not subscribed content. Subscribed contentmay be updated periodically or from time to time by the associatedcontent provider or a third party. Subscribing to a web feed or othersource of subscribed content may be accomplished by a user registeringor subscribing with a content provider, for example via the contentproviders web site, which may in one embodiment comprise dragging a linkfrom a web browser to an aggregator, or clicking an icon (e.g., an RSSicon), etc.

An aggregator 30, 32 (or feed reader, news reader, etc.) is anapplication or other module which collects web feeds or other subscribedcontent to make the subscribed content more easily accessible to a user.One exemplary aggregator is Bloglines, a division of Ask.com, producedby IAC Search & Media, Oakland, Calif. Aggregator 30, 32 may be operableon one or both of mobile device 100 and server 20. Aggregator 30, 32 maybe configured to query all servers in a user's preselected list of webfeeds or subscribed content sources (e.g., feed list) to check for newsubscribed content. The checking may occur periodically (e.g., every 30minutes, once a day, etc.) or from time to time and preferably occurs ona predetermined period or time schedule. If new content exists,aggregator 30, 32 may make a note of the new content, for example bysetting a flag or downloading a new web feed summary or link, oraggregator 30, 32 may download or synchronize with part or all of thesubscribed content or a summary of the subscribed content.

Mobile computing device 100 is configured to access subscribed content28 via a wireless WAN 24, wireless LAN 26, and or other wired orwireless networks. Subscribed content 28 may be accessed by streamingcontent from server 20 to device 100, which is the presentation of thecontent to the user while the data is downloading, typically with aportion of the content stored or cached on device 100. Subscribedcontent 28 may alternatively be accessed by downloading content fromserver 20 to device 100, which is the reception and storage of thesubscribed content on device 100. In either case of streaming ordownloading, resources of device 100, such as one or more of batterypower, memory space, processing bandwidth and wireless networkbandwidth, are used.

Referring now to FIG. 5, a system and method for accessing subscribedcontent with a mobile computing device will be described. Processingcircuit 101 may be configured to run an application configured toprovide an interface to the user via display 112. The interface may be aweb browser, internet aggregator, or other user interface configured topresent to the user a plurality of subscribed content sources, such asweb sites, web feeds, etc. The subscribed content sources may becollected in a media guide application operable on server 20, or device100 may be configured to allow the user to browse to different web pageson the internet to select subscribed content sources. The interface isconfigured to receive user selection of a plurality of subscribedcontent sources and to store them in a database on device 100 or server20.

At step 40, processing circuit 101 is configured to determine anavailability of a memory 34, 36, which may be any of the types of memorydiscussed above with reference to memories 108, 124. Memory 34 may beinternal to device 100 or a memory card 36. A memory port 38 may beconfigured to receive removable memory card 36. Step 40 may comprisedetermining whether the removable memory card is present in the memoryport to determine the availability of memory. Alternatively, step 40 maycomprise determining whether a predetermined amount of memory is freeand usable (e.g., not allocated to other applications or systemprograms) on memory 34 or memory card 36 to determine the availabilityof memory. Processing circuit 101 may be configured to calculate thepredetermined amount of memory based on size data about subscribedcontent 28 to be accessed from remote server 20. Alternatively, thepredetermined amount of memory may be a user-selectable value or a valuestored in memory 34 by a manufacturer, service provider, or enterprisetechnician.

At step 42, processing circuit 101 is configured to present to the uservia display and/or audible output an option for accessing the subscribedcontent which is based on the availability of the memory. The option maybe presented before, during, or subsequent to the user selectingsubscribed content sources and/or reconfiguring subscribed contentsettings (e.g., frequency of checking for new content, frequency ofdownloading new content to device 100, etc.). In one example, ifprocessing circuit 101 determines a memory card is present and/or that asufficient amount of memory is available on memory card 36, processingcircuit 101 is configured to present to the user the options ofstreaming, downloading or subscribing to the subscribed content withrespect to one or more (or all) of the subscriptions. The user may thenselect from among the options, wherein the selection is stored in memory34 or on server 20. In another example, if processing circuit 101determines the absence of memory card 36 or that insufficient memory isavailable on memory card 36 and/or memory 34, the user is only presentedwith the stream option, or is presented with a set of options notincluding a download option. In another embodiment, the user may bepresented with the stream option by indicating to the user that theselected subscribed content will be streamed, whereby user selection isnot required to confirm the stream option. Other options for accessingsubscribed content may be presented to the user, some or all of whichmay be selectively disclosed based on memory availability, such as, atrickle download (e.g., a download at significantly slower than amaximum download time capability of a wireless network).

At step 44, processing circuit 101 is configured to receive a userselection of one or more of the presented options. Processing circuit101 may then be configured to execute the user instructions and/orforward the user instructions to server 20 for execution. For example,if a user selects a subscribe option when a source of subscribed contentis selected, processing circuit 101 is configured to add the subscribedcontent to a local or remote database of subscriptions. If a userselects a download option when a source of subscribed content isselected, a latest subscribed content may be downloaded in response tothe command, and/or the subscribed content may be marked to downloadduring the next publication of updated subscribed content (or the nexttime aggregator 30, 32 collects updated subscribed content). If a userselects a streaming option when a source of subscribed content isselected, a latest subscribed content may be streamed in response to thecommand, and/or the subscribed content may be marked to stream duringthe next publication of updated subscribed content (or the next timeaggregator 30, 32 collects updated subscribed content). At step 46,processing circuit 101 is configured to access the subscribed content atdevice 100 in accordance with the user selection of the option oroptions.

Scheduling of aggregation and delivery to device 100 may occur in anumber of ways. In one example, aggregator 30 is operable on server 20,which has the resources (e.g., processing power, power supply, etc.) tofrequently check sources of subscribed content for updated content orrecent publications (e.g., every 30 seconds, 10 seconds, severalminutes, etc.). Device 100 may send a message to aggregator 30indicating when aggregator 30 should check for updates, for example uponreceipt of the message (which may be automatically generated orgenerated in response to a user request), periodically and withoutfurther command from device 100, etc. Aggregator 30 may then transmitthe updated subscribed content to device 100 in any of a number of ways.For example, aggregator 30 may immediately transmit updated subscribedcontent to device 100. This transmission may be done according to apreselected delivery option (e.g., download or stream). Alternatively,aggregator 30 may immediately send a message to device 100 which promptsthe user to select whether to receive content now or defer receipt untila later time. Device 100 may further prompt the user to select adelivery option (e.g., download or stream). Alternatively, processingcircuit 101 may at this time determine the availability of memory andpresent to the user an option based on the availability of memory, asdescribed hereinabove. Thus, the step of presenting an option based onthe availability of memory may occur during a user-initiated session toselect, edit or review subscribed content and/or may occur during aserver-initiated session which is initiated in response to the receiptof updated subscribed content, periodically, from time to time, etc. Inanother alternative, aggregator 32 may be configured to only transmitcontent to device 100 periodically, only when predetermined searchcriteria are met within updated subscribed content, only during apredetermined time (e.g., a time of day), or only in response to anapproval-to-send message from device 100 (e.g., in embodiments in whichdevice 100 may be configured to check the availability or use of localresources, as described below with reference to FIG. 8). In anotherexample, aggregator 32 may be operable on processing circuit 101 whichchecks subscribed content sources for updated content periodically, fromtime to time, etc., though this embodiment uses more power, processing,and network resources on device 100 than the embodiment in whichaggregator 30 is operable on server 20. Further, either of aggregator 30or 32 may be configured to receive keywords or tags that aggregator 30,32 uses to search within subscribed content and, in response to a hit,presents an audible and/or visible alarm to the user to indicate newsubscribed content meeting a keyword criteria has been identified.

It is understood that one or more of the steps described herein may beperformed by server 20 and/or shared between device 100 and server 20 invarious alternate embodiments.

Referring now to FIG. 6, a system and method of accessing subscribedcontent with a mobile computing device is described, according to anexemplary embodiment. At step 50, processing circuit 101 is configuredto select one of a wireless WAN 24 and a wireless LAN 26 for accessingsubscribed content (e.g., via download, stream, etc.). In alternativeembodiments, processing circuit 101 may be configured to select from anyother wireless network or networks available and/or compatible withdevice 100. At step 52, processing circuit 101 is configured to downloador stream subscribed content using the selected wireless network. Thedownloading may occur in a first mode of operation and the streaming mayoccur in a second, different mode of operation. For example, if memory34, 36 is unavailable, processing circuit 101 may be configured tooperate in the second mode of operation to stream data. If at a latertime memory card 36 is inserted, processing circuit 101 may switch tooperate in the first mode of operation to download data. As a secondexample, processing circuit 101 may operate in the first or second modebased on user selection. Modes may be also be determined based on theapplication being run, or based on other criteria.

In one exemplary embodiment, in response to a user selection to streamsubscribed content from remote server 20, processing circuit 101 may beconfigured to select wireless LAN 26 for communication, because wirelessLANs typically operate at higher communication speeds than otherwireless networks.

In another exemplary embodiment, processing circuit 101 is configured tocommunicate over wireless LAN 26 with remote server 20 to receivesubscribed content and, if wireless LAN 26 is or becomes unavailable,processing circuit 101 is configured to switch to communicating overwireless WAN 28 with remote server 20.

In another exemplary embodiment, processing circuit 101 is configured toselect the wireless network for communication with the remote serverbased on communication speed data stored in memory for both of thewireless networks. The communication speed data may be prestored duringmanufacture or by a user or from a previous communication session withthe wireless network, or may be measured or received from the wirelessnetwork at the time of selecting a wireless network. Alternatively, orin addition, price, signal strength, hours of operation, and/or othernetwork characteristics may be used by processing circuit 101 to selecta wireless network.

In another exemplary embodiment, processing circuit 101 is configured topresent indicia on display 112 of an option to download the subscribedcontent and an option to stream the subscribed content, to receive auser selection of one of the stream option and the download option, andto store the user selection. The indicia may be a dialog box, an icon, abutton to be clicked by a mouse, or other graphical or visible indicia.The user selection may be stored on device 100 or server 20 and may beassociated with one or more subscriber content sources. Step 52 may thenbe executed to carry out the user selection.

One or more steps of the embodiments of FIGS. 4-8 may be combined withor added to other steps in FIGS. 4-8 to provide further embodiments. Forexample, if memory card 36 is not present in device 100, device 100presents only the stream option. In response to a user selection of thestream option to stream subscribed content, device 100 selects withoutuser input a fastest available data access type or wireless network(e.g., Wi-Fi if available, then carrier network).

Referring now to FIG. 7, a system and method for accessing subscribedcontent with a mobile computing device will be described. At step 60,server 20 is configured to receive a user selection of subscribedcontent via a data output terminal configured to communicate with device100 over wireless network 24 and/or 26. The data output terminal may beany port or connection coupled to server 20 and configured to allowserver 20 to communicate wirelessly or via wire with a wireless accesspoint, whether directly or indirectly, and/or to the Internet. At step62, a processing circuit 37 coupled to server 20 may be configured tostore in a memory 39 a predetermined time to transmit subscribed content28. At step 64, processing circuit 37 may further be configured totransmit the subscribed content to device 100 at the predetermined time.Alternatively, device 100 may be configured to store the predeterminedtime and to transmit a request to server 20 at the predetermined timefor access to updated subscribed content.

The predetermined time may be selected by the user of device 100 or viaa web portal directly to server 20. For example, a user may configuredevice 100 and/or server 20 to only provide updated subscribed contentto device 100 between the hours of 1 AM and 5 AM, which would avoid thetransmission of data interfering with the user's operation of device100. The predetermined time may represent a time of day, and may be donewith reference to peak, off-peak, or other time periods defined by acarrier of wireless WAN 24. The predetermined time may represent apredetermined period of time (e.g., every 30 minutes, every 1 hour,every 1 day, etc).

The predetermined time may be delayed by user request to device 100,which is subsequently communicated to server 20, or without user inputby device 100 detecting a status of a local system resource (as shownbelow in exemplary form with reference to FIG. 8) and determining basedon the status that synchronization or access of updated subscribedcontent should be delayed.

As mentioned above, steps of FIG. 7 may be combined with steps of othersof the Figs. For example, if device 100 has memory card 36 available andthe user chooses to subscribe to a podcast, the user may determine thetime of day they want device 100 to synchronize with server 20 toreceive any updated subscribed content. When the synchronization timearrives, device 100 will attempt to download or stream the updates overa Wi-Fi network first and then via a carrier network.

According to one exemplary embodiment, processing circuit 37 may beconfigured to detect whether the mobile computing device is in aninactive state, and to transmit the subscribed content to the mobilecomputing device based on the determination of whether the mobilecomputing device is in an inactive state. A determination of an inactivestate may be made by device 100 and/or server 20, either alone or usingprocessing resources and/or data from both device 100 and server 20.Server 20 may detect the inactive state independently or by receiving asignal from device 100 indicating device 100 is in an inactive state. Inone example, processing circuit 37 may be configured to determine thatdevice 100 is in an inactive state at approximately a time when theprocessing circuit has completed a data synchronization process (e.g.,e-mail, contacts, other personal information, etc.) with the mobilecomputing device. Processing circuit 37 may further be configured totransmit the subscribed content after the data synchronization during asingle communication session (e.g., without ending a communicationsession established for the data synchronization). In another example,processing circuit 37 may be configured to determine that the mobilecomputing device is in an inactive state based on a signal from themobile computing device indicating the absence of user input to device100 for a predetermined period of time. In other examples, an inactivestate of device 100 may be defined by an absence of a particularapplication running, or particular applications or a type of applicationrunning, the absence of a communication session between device 100 andone or more wireless networks, whether the display of the device isactively displaying information, whether the device is “powered on”, orother activity or presence indicators.

The steps set forth in FIGS. 5-8 may be performed in any order and arenot limited to the order in which they are presented. For example, inFIG. 7, step 62 of storing a predetermined time may occur during a setupoperation long before step 60 of receiving a user selection ofsubscribed content. Alternatively, both can occur during the samecommunication session and in any order.

Referring now to FIG. 8, a system and method for accessing subscribedcontent with a mobile computing device will be described. At step 70,processing circuit 101 is configured to determine a status of at leastone local system resource and, at step 72, to determine whether toproceed with accessing subscribed content based on the status. A localsystem resource may be a module, component, or sub-unit of device 100,such as power supply 118, a processor, radio frequency transceiver 120,memory 34, 36, or other resources operable while at least a portion ofdevice 100 is in an ON state.

A status of the resource may be a characteristic which can change duringdifferent modes of operation of device 100. For example, a status ofpower supply 118 may indicate whether the power supply is coupled to anexternal power source 35 (e.g., a wall outlet, external battery pack,car charger, etc.), wherein processing circuit 101 is configured todetermine not to proceed with the accessing of the subscribed content ifthe power supply is not coupled to an external power source.

In another example, a status of a processor may indicate the operationof an application in use by the user, wherein processing circuit 101 isconfigured to determine not to proceed with the accessing of thesubscribed content if the application is in use by the user. Anapplication may be in use by a user, for example, during a telephonecall using a telephony application, synchronizing-mail in an e-mailapplication, browsing web sites with a web browser application, playinga game with a gaming application, etc. In some uses of applications,radio frequency transceiver 120 is used for wireless communication anduse of said applications or active use of radio frequency transceiver120 may be provided as an indicia of status. According to one exemplaryembodiment, if device 100 is in use at the time of a recurring downloadof updated subscribed content, rather than share processor and/orwireless network bandwidth with the user, the recurring download may bedelayed until full available bandwidth and system resources areavailable.

In another example, a status of radio frequency transceiver 120 mayindicate the availability of a predetermined wireless network operatingat a higher speed than another predetermined wireless network, whereinprocessing circuit 101 is configured to determine not to proceed withthe accessing of the subscribed content if the higher speed wirelessnetwork is not available.

In another example, a status of memory 34, 36 may indicate whether apredetermined amount of memory allocated for downloads is available,wherein processing circuit 101 is configured to determine not to proceedwith the accessing of the subscribed content if the predetermined amountof memory allocated for downloads is not available. For example, adownload application operable on processing circuit 101 may beconfigured by default to not download subscribed content if memory 34 or36 has less than 10 percent (or another predetermined percentage, whichmay be user-adjustable) of available memory on memory card 36.

The determination not to proceed with accessing subscribed content mayin some embodiments comprise not scanning for or aggregating updatedcontent during a scheduled time to scan for or aggregate data. Thedetermination not to proceed with accessing subscribed content may occurbefore or during a download or stream of subscribed content.

According to an advantage of some embodiments, a podcast may be a filebetween 50 megabytes and 100 megabytes, the downloading of which wouldconsume significant battery power, memory, processing bandwidth, andwireless network bandwidth. Various embodiments described herein mayhelp conserve such resources when they are needed, while stillaccomplishing the access of subscribed data for the user.

According to some embodiments, criteria for determining how and when todownload subscriber content may be programmed into device 100 and/orserver 20 by a cellular network carrier, and may differ from onecarrier's network to another. Carriers may use one or more of thesemethods to reduce network traffic during hours of peak usage and movenetwork traffic to off-peak hours.

According to another embodiment, processing circuit 101 may beconfigured to delay downloading subscriber content until a fasterwireless network is available. For example, if processing circuit 101determines that no Wi-Fi network or other wireless LAN is available,rather than switch to downloading via wireless WAN, processing circuit101 may be configured to continuously monitor for the presence of aWi-Fi network and, upon detecting the presence of a Wi-Fi network,attempt to communicate to server 20 via the detected Wi-Fi network.

According to another exemplary embodiment, device 100 and/or server 20may be configured to determine the number of episodes of subscribedcontent the user wishes to download based on one or more criteria, suchas a user-selectable preference or default based on type of subscribedcontent (e.g., video feed, audio feed, photograph feed, etc.). Forexample, for a large podcast, such as a weekly news show, device 100and/or server 20 may be configured to download only a most recentepisode, whereas for other subscribed content, such as digital stillphoto feeds, device 100 and/or server 20 may be configured to downloadall new photos (e.g., all photos not previously downloaded, all photospublished within a predetermined time period (e.g., within the pastweek, month, year, etc.), etc.). Advantageously, because digital stillphoto feeds typically use less memory or have a smaller file size,device 100 may have sufficient memory to download more than just themost recent episode and a user likely wishes to view more than just themost recent episode.

According to another embodiment, processing circuit 101 may beconfigured to delay downloading subscriber content if power supply 118is below a predetermined amount of available power (e.g., less than apredetermined percentage of battery power). Processing circuit 101 mayfurther be configured to calculate an estimated amount of power requiredto download a web feed based on the size of the web feed, the speed ofthe wireless network to be used, and/or the power consumption of thewireless network to be used. If the estimated amount of power is greaterthan or within a threshold of the amount of power remaining in powersupply 118, processing circuit 101 may be configured to delaydownloading updated subscriber content. The predetermined amount ofavailable power may be user-selectable or configured by a carrierservice professional or enterprise technician.

With reference to the disclosure and claims, use of the phrase “basedon” means “based at least in part on,” and use of the term “a,” “an” or“one” means “one or more”or “at least one.” Further, any of the steps ofany of the methods disclosed herein may be combined with any of theother steps and/or rearranged with other steps in alternativeembodiments. Specifically, various embodiments may make use of differentcombinations of parts or all of the methods disclosed herein.

While the exemplary embodiments illustrated in the Figs., and describedabove are presently exemplary, it should be understood that theseembodiments are offered by way of example only. Accordingly, the presentinvention is not limited to a particular embodiment, but extends tovarious modifications that nevertheless fall within the scope of theappended claims.

What is claimed is:
 1. A mobile computing device, comprising: a radiofrequency transceiver to communicate over a wireless network with aremote server; a memory; a memory port to receive a removable memorycard; a display; and a processing circuit to: receive, from a user ofthe mobile computer device, a selection of subscribed content to bereceived from the remote server, determine an availability of the memoryby determining whether a predetermined amount of memory is free, whereinthe predetermined amount of memory is a user-selectable value, inresponse to the selection of the subscribed content, present to the userone or more available options for accessing the subscribed content,wherein the one or more available options for accessing the subscribedcontent are based on the availability of the memory, receive a userselection from the one or more options presented, and access thesubscribed content based on the user selection.
 2. The mobile computingdevice of claim 1, the removable memory card comprising the memory. 3.The mobile computing device of claim 2, the availability of the memorycomprising whether the removable memory card is present in the memoryport.
 4. The mobile computing device of claim 1, when the predeterminedamount of memory is not free, the option presented to the usercomprising an option to stream the content.
 5. The mobile computingdevice of claim 1, the option is one of a set of options for accessingthe subscribed content, the processing circuit to present a streamoption and a download option when the memory is available.
 6. The mobilecomputing device of claim 5, the set of options does not comprise adownload option if the memory is not available.
 7. The mobile computingdevice of claim 1, the option for accessing the subscribed contentcomprising a subscribe option.
 8. The mobile computing device of claim1, the processing circuit further to: set the mobile computing device ina download mode or stream mode in response to the user selection,determine when the removable memory card becomes present or is no longerpresent in the memory port, switch to the stream mode when the removablememory card is no longer present and the mobile computing device is inthe download mode, and switch to the download mode when the removablememory card becomes present and the mobile computing device is in thestream mode.
 9. The mobile computing device of claim 1, the processingcircuit to: determine whether the mobile computing device is in aninactive state, and delay access of the subscribed content when a powersupply of the mobile computing device is not connected to an externalpower source, the mobile computing device is not connected to a localwireless network, and the mobile computing device is not in the inactivestate.
 10. A method of receiving content from a remote server at amobile computing device, comprising: receiving, from a user of themobile computer device, a selection of subscribed content to be receivedby the mobile computing device from the remote server; determining anavailability of a memory of the mobile computing device by determiningwhether a predetermined amount of memory is free, wherein thepredetermined amount of memory is a user-selectable value; in responseto receiving the selection of the subscribed content, presenting, on themobile computing device, one or more available options for accessingsubscribed content published by a content provider with which a user ofthe mobile computing device has a subscription to receive updatedsubscribed content, wherein the one or more available options foraccessing the subscribed content are based on the availability of thememory; receiving a user selection from the one or more options; andaccessing the subscribed content based on the user selection from theone or more options.
 11. The method of claim 10, wherein a removablememory card at the mobile computing device comprising the memory. 12.The method of claim 11, determining the availability of the memorycomprising determining whether the removable memory card is present inthe memory port.
 13. The method of claim 10, when the predeterminedamount of memory is not free, the option presented to the usercomprising an option to stream the content.
 14. The method of claim 10,the option is one of a set of options for accessing the subscribedcontent, presenting an option for accessing the subscribed contentcomprising presenting a stream option and a download option if thememory is available.
 15. The method of claim 14, the set of options doesnot comprise a download option if the memory is not available.
 16. Themethod of claim 10, the option of accessing the subscribed contentcomprising a subscribe option.
 17. The method of claim 10, furthercomprising: setting the mobile computing device in a download mode orstream mode in response to the user selection; determining when aremovable memory card becomes present or is no longer present at themobile device; switching to the stream mode when the removable memorycard is no longer present and the mobile computing device is in thedownload mode; switching to the download mode when the removable memorycard becomes present and the mobile computing device is in the streammode; determining whether a power supply of the mobile computing deviceis connected to an external power source; determining whether the mobilecomputing device is in an inactive state; accessing the subscribedcontent on the mobile computing device based on the user selection whenthe power supply of the mobile computing device is connected to theexternal power source, the mobile computing device is connected to alocal wireless network and the mobile computing device is in theinactive state, wherein the subscribed content is accessed from theremote server via the local wireless network; and delaying access of thesubscribed content when the power supply of the mobile computing deviceis not connected to the external power source, the mobile computingdevice is not connected to the local wireless network, and the mobilecomputing device is not in the inactive state.
 18. The method of claim10, further comprising: storing the user selection in the memory; andaccessing updated subscribed content published after receiving the userselection based on the stored user selection.
 19. A mobile computingdevice, comprising: a radio frequency transceiver to communicate over awireless network with a remote server: a memory; a display; and aprocessing circuit to: receive, from a user of the mobile computerdevice, a selection of subscribed content to be received from the remoteserver, wherein the subscribed content is published by a contentprovider with which the user of the mobile computing device has asubscription to receive updated subscribed content, determine anavailability of the memory by determining whether a predetermined amountof memory is free, wherein the predetermined amount of memory is auser-selectable value, in response to the selection of the subscribedcontent, present to the user one or more available options for accessingthe subscribed content based on the availability of the memory, receivea user selection from the presented one or more options, store the userselection in the memory, set the mobile computing device in a downloadmode or a stream mode in response to the user selection, determine whena removable memory card becomes present or is no longer present at themobile computing device, switch to the stream mode when the removablememory card is no longer present and the mobile computing device is inthe download mode, switch to the download mode when the removable memorycard becomes present when the mobile computing device is in the streammode, determine whether a power supply of the mobile computing device isconnected to an external power source, determine whether the mobilecomputing device is connected to a local wireless network, determinewhether the mobile computing device is in an inactive state, uponreceiving an indication that new updated subscribed content isavailable, access the new updated subscribed content based on the storeduser selection when the power supply of the mobile computing device isconnected to the external power source, the mobile computing device isconnected to the local wireless network, and the mobile computing deviceis in the inactive state, and delay access of the subscribed contentwhen the power supply of the mobile computing device is not connected tothe external power source, the mobile computing device is not connectedto the local wireless network, and the mobile computing device is not inthe inactive state.
 20. The mobile computing device of claim 19, furthercomprising a memory port to receive the removable memory card comprisingthe memory.
 21. The mobile computing device of claim 20, theavailability of the memory comprising whether the removable memory cardis present in the memory port.
 22. The mobile computing device of claim10, when the predetermined amount of memory is not free, the optionpresented to the user comprising an option to stream the content. 23.The mobile computing device of claim 19, the option is one of a set ofoptions for accessing the subscribed content, the processing circuit topresent a stream option and a download option if the memory isavailable.
 24. The mobile computing device of claim 23, the set ofoptions does not comprise a download option if the memory is notavailable.
 25. The mobile computing device of claim 19, the option foraccessing the subscribed content comprising a subscribe option.
 26. Themobile computing device of claim 19, the subscribed content comprising apodcast or other enclosed file format in the feed.